﻿/*
 *********************************************************************
 *    Management Extensions for Windows Windows Server AppFabric     *
 *********************************************************************
 *    Author    : Fatih Boy [fatih@enterprisecoding.com]             *
 *    Web site  : http://www.enterprisecoding.com                    *
 *********************************************************************
 *    License   : GNU Library General Public License (LGPL)          * 
 *********************************************************************
 */

using System;
using System.Runtime.InteropServices;

namespace Com.Enterprisecoding.AppFabric.Extensions.Client.ObjectPicker {
    [ComImport]
    [Guid("0000010e-0000-0000-C000-000000000046")]
    [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
    public interface IDataObject {
        [PreserveSig]
        int GetData(ref Interop.FORMATETC pFORMATETC, ref Interop.STGMEDIUM bSTGMEDIUM);
        
        int GetDataHere(ref Interop.FORMATETC a, ref Interop.STGMEDIUM b);
        
        [PreserveSig]
        int QueryGetData(ref Interop.FORMATETC a);
        
        [PreserveSig]
        int GetCanonicalFormatEtc(IntPtr a, IntPtr b);
        
        [PreserveSig]
        int SetData(IntPtr a, IntPtr b, int c);
        
        [PreserveSig]
        int EnumFormatEtc(uint a, IntPtr b);
        
        [PreserveSig]
        int DAdvise(IntPtr a, uint b, IntPtr c, ref uint d);
        
        [PreserveSig]
        int DUnadvise(uint a);
        
        [PreserveSig]
        int EnumDAdvise(IntPtr a);
    }
}
